//checked on 3/7/11

void letterstr(char *t)
{
	h= hash(t);
	if(0<=h){
		i=hashp[h].icod;
		if(i==0){
			fprintf(fpe,e4,line,t);
			nerr++;
		}
		if((i<200)&&((lrw==300)||(lrw==301))){
			fprintf(fpe,e3,line,t);
			nerr++;
		}
		if(300<=i){
			lrw=i;
		}
		lsymb=symbol[nsymb++]=i;
	}
	else{
		if(sspl<=ssp+strlen(t)){
			puts("**out of sring space **");
			unlink ("$$err$$");
			flcose(fps);
			exit(1);
		}
		else{
			h=-(h+1);
			hashp[h].ptss=ssp;
			p=t;
			
			while((*ssp++=*p++)!=EOS){
			
			}
			if(lrw==300){
					var[nrvar]=hashp[h].ptss;
					lsymb=symbol[nsymb++]=hashp[h].icod=100+(nrvar++);
					return;
			}
		    else{
			    if(lrw==301){
					var[50+nrvar]=hashp[h].ptss;
					lsymb=symbol[nsymb++]=hashp[h].icod=150+(nivar++);
					return;
				}
				else{
					fprintf(fpe,e4,line,t);
					nerr++;
					lsymb=symbol[nsymb++]=hashp[h].icod=0;
			    }
            }
		}
	}
}
